package com.sg.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 用于在项目实施前，将不需要的数据分离
 *
 * @author xxx
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("5fb011becd4d4539969423511bb7dd81")
public class OmsPlatformOperationSeparatedData extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 分离数据表主键ID
     */
    @TableId(value = "operation_separated_data_id", type = IdType.UUID)
    @NotNull(message = "operationSeparatedDataId不能为空")
    private String operationSeparatedDataId;

    /**
     * 表ID
     */
    @TableField(value = "table_id")
    @ApiModelProperty("表ID")
    private String tableId;

    /**
     * 中文表名
     */
    @TableField(value = "table_cn_name")
    @ApiModelProperty("中文表名")
    private String tableCnName;

    /**
     * 英文表名
     */
    @TableField(value = "table_en_name")
    @ApiModelProperty("英文表名")
    private String tableEnName;

    /**
     * 设计工具加密表名
     */
    @TableField(value = "tool_table_encryption_name")
    @ApiModelProperty("设计工具加密表名")
    private String toolTableEncryptionName;

    /**
     * 线上加密表名
     */
    @TableField(value = "prd_table_encryption_name")
    @ApiModelProperty("线上加密表名")
    private String prdTableEncryptionName;

    /**
     * 加密表名是否一致 TRUE:是 FALSE:否
     */
    @TableField(value = "encryption_name_is_same")
    @ApiModelProperty("加密表名是否一致")
    private String encryptionNameIsSame;

    /**
     * 归属空间ID
     */
    @TableField(value = "belong_space_id")
    @ApiModelProperty("归属空间ID")
    private String belongSpaceId;

    /**
     * 是否需要数据分离 TRUE:是 FALSE:否
     */
    @TableField(value = "is_needdata_separated")
    @ApiModelProperty("是否需要数据分离")
    private String isNeeddataSeparated;

    /**
     * 数据分离策略类型
     */
    @TableField(value = "data_separated_strategy_type_code")
    @ApiModelProperty("数据分离策略类型")
    private String dataSeparatedStrategyTypeCode;

    /**
     * 数据分离策略描述
     */
    @TableField(value = "data_separated_strategy_desc")
    @ApiModelProperty("数据分离策略描述")
    private String dataSeparatedStrategyDesc;

    /**
     * 数据分离状态 HAVE_COMPLETED:已完成 INCOMPLETE:未完成
     */
    @TableField(value = "data_separated_status")
    @ApiModelProperty("数据分离状态")
    private String dataSeparatedStatus;

    /**
     * 操作人就职记录ID
     */
    @TableField(value = "operation_induction_id")
    @NotNull(message = "操作人就职记录ID不能为空")
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;

    /**
     * 创建人就职记录ID
     */
    @TableField(value = "create_induction_id")
    @ApiModelProperty("创建人就职记录ID")
    private String createInductionId;

    /**
     * 操作时间
     */
    @TableField(value = "operate_time")
    @NotNull(message = "操作时间不能为空")
    @ApiModelProperty("操作时间")
    private Date operateTime;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 是否作废 TRUE:是 FALSE:否
     */
    @TableField(value = "is_valid")
    @ApiModelProperty("是否作废")
    private String isValid;

    /**
     * 创建于空间ID
     */
    @TableField(value = "space_id")
    @ApiModelProperty("创建于空间ID")
    private String spaceId;

    /**
     * 创建于联盟应用ID
     */
    @TableField(value = "app_id")
    @ApiModelProperty("创建于联盟应用ID")
    private String appId;
}
